﻿
/*
This file is part of flashforumlib.

flashforumlib is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

flashforumlib is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with flashforumlib.  If not, see <http://www.gnu.org/licenses/>.
*/

package fflib.utils
{
	/**
	 * Bietet Hilfsfunktionen zum Umgang mit Array-Instanzen.
	 */
	public class ArrayUtil
	{
		/**
		 * Durchmischt das übergebene <code>Array</code> zufällig.<br />
		 * Das <code>array</code>-Objekt wird dabei verändert.
		 * 
		 * @param	array das zu mischende <code>Array</code>
		 */
		public static function shuffle(array:Array):void
		{
			var i:int;
			var l:int = array.length;
			
			for (i = 0; i < l; i++) {
				var tmp:* = array[i];
				var randomIndex:int = Math.floor(Math.random() * l);
				
				array[i] = array[randomIndex];
				array[randomIndex] = tmp;
			}
		}
		
		/**
		 * Formatiert den übergebenen <code>Array</code> in einen String und fügt
		 * nach jedem split <code>delimiter</code> als Trennzeichen ein.<br />
		 * Der Array wird dabei nicht verändert.
		 * 
		 * @param array 	Der zu formatierende Array.
		 * @param delimiter Trennzeichen.
		 * 
		 * @return Den formatierten String.
		 */
		public static function toString(array: Array, delimiter: String = ' '): String {
			return String(array.toString()).split(',').join(delimiter);
		}
	}
}
